/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.udistrisisbici.dao;


import com.udistrisisbici.exception.DaoException;
import com.udistrisisbici.vo.AdministradorVO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.udistrisisbici.util.logs.Logger;
/**
 *
 * @author nicardonaa
 */
public class AdministradorDao extends UtilDao{
    
    public static Logger logger;

    static {
        logger = Logger.getLogger(AdministradorDao.class);
    }

    public AdministradorVO buscarAdministradorPorUsuarioClave(String usuario, String clave) throws DaoException, SQLException {
        
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        AdministradorVO admin = null;

        try {
            
            con = getConeccionSisbici();
            String sentenciaSql = "SELECT identificacion_admin, nombres, apellidos, rol, usuario, clave FROM public.adminstrador where usuario = ? and clave = ?";
            ps = con.prepareStatement(sentenciaSql);
            int i = 1;
            
            ps.setString(i++, usuario);
            ps.setString(i++, clave);
            
            StringBuilder sbLog = new StringBuilder();
            sbLog.append("SQL log: [").append(sentenciaSql).append("]");
            sbLog.append("[").append(usuario).append(", ");
            sbLog.append(clave).append("]");
            
            logger.info(sbLog.toString());
            
            long t1 = System.currentTimeMillis();
            rs = ps.executeQuery();
            long t2 = System.currentTimeMillis();
            
            logger.info("Tiempo SQL: " + (t2 - t1) + "ms.");
            
            if (rs.next()) {
                
                admin = new AdministradorVO();
                admin.setIdentificacionAdmin(rs.getString(1));
                admin.setNombres(rs.getString(2));
                admin.setApellidos(rs.getString(3));
                admin.setRol(rs.getInt(4));
                admin.setUsuario(rs.getString(5));
                admin.setClave(rs.getString(6));
         
            }
        
        } catch (DaoException de) {
            logger.error("fun:buscarCanalAfiliacionByCodCanal -> Error de conexión en la ejecuciópn del SQL", de);
            throw de;
        } catch (SQLException se) {
            logger.error("fun:buscarCanalAfiliacionByCodCanal -> Error en la ejecución del SQL", se);
            throw se;
        } finally {
            closeResources(con, ps, rs);
        }

        return admin;
    }

}
